/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Negocio;

import java.sql.Connection;
import Persistencia.Daos;
import Entidades.EntEmpleado;
import Utilidades.Conexion;
import java.util.Date;

/**
 *
 * @author santiago
 */
public class EmpleadoN {
    
    Daos dao;
    
    /**
     * Metodo constructor que instancia un objeto de la clase Daos
     */
    public EmpleadoN() {
        dao = new Daos();
    }
    
    /**
     * Metodo que sirve para validar los datos antes de guardar un empleado en la base de datos
     * @param empleado objeto que contiene toda la informacion de un empleado, de tipo EntEmpleado
     * @throws Exception mensajeError
     */
    public void guardar(EntEmpleado empleado) throws Exception {
        Connection c;
        c = new Conexion().getCon();
        String mensajeError = "";
        String nombres = empleado.getNombres();
        String primerApellido = empleado.getPrimerApellido();
        String segundoApellido = empleado.getSegundoApellido();
        String tipoDocumento = empleado.getTipoDocumento();
        String numeroDocumento = empleado.getNumeroDocumento();
        String correo = empleado.getCorreo();
        String clave = empleado.getClave();
        String ciudad = empleado.getCiudad();
        String direccion = empleado.getDireccion();
        String telefono = empleado.getTelefono();

        if (nombres == null) {
            mensajeError = mensajeError + "Debes ingresar un nombre ";
        }
        if (primerApellido == null || "".equals(primerApellido)) {
            mensajeError = mensajeError + "Debes ingresar tu primer apellido";
        }
        if (tipoDocumento == null || "".equals(tipoDocumento)) {
            mensajeError = mensajeError + "Debes elegir un tipo de documento";
        }
        if (numeroDocumento == null || "".equals(numeroDocumento)) {
            mensajeError = mensajeError + "Debes ingresar tu numero de documento";
        }
        if (correo == null || "".equals(correo)) {
            mensajeError = mensajeError + "Debes ingresar un correo ";
        }
        if (clave == null || "".equals(clave)) {
            mensajeError = mensajeError + "Debes ingresar una clave valida";
        }
        if (ciudad == null || "".equals(ciudad)) {
            mensajeError = mensajeError + "Debes ingresar una ciudad";
        }
        if (direccion == null || "".equals(direccion)) {
            mensajeError = mensajeError + "Debes ingresar una direccion";
        }
        if (telefono == null || "".equals(telefono)) {
            mensajeError = mensajeError + "Debes ingresar una telefono";
        }
        if (!"".equals(mensajeError)) {
            throw new Exception(mensajeError);
        }
        
        dao.insertarEmpleado(c, nombres, primerApellido, segundoApellido, tipoDocumento, numeroDocumento, correo, clave, ciudad, direccion, telefono);

    }
    
    /**
     * Metodo que sirve para validar la informacion antes de actualizar la informacion de un empleado en la base de datos
     * @param empleado objeto que contiene toda la informacion de un empleado, de tipo EntEmpleado
     * @throws Exception mensajeError
     */
    public void actualizar(EntEmpleado empleado) throws Exception {
        Connection c;
        c = new Conexion().getCon();
        String mensajeError = "";
        String nombres = empleado.getNombres();
        String primerApellido = empleado.getPrimerApellido();
        String segndoApellido = empleado.getSegundoApellido();
        String tipoDocumento = empleado.getTipoDocumento();
        String numeroDocumento = empleado.getNumeroDocumento();
        String correo = empleado.getCorreo();
        String clave = empleado.getClave();
        String ciudad = empleado.getCiudad();
        String direccion = empleado.getDireccion();
        String telefono = empleado.getTelefono();

        if (nombres == null) {
            mensajeError = mensajeError + "Debes ingresar un nombre ";
        }
        if (primerApellido == null || "".equals(primerApellido)) {
            mensajeError = mensajeError + "Debes ingresar tu primer apellido";
        }
        if (tipoDocumento == null || "".equals(tipoDocumento)) {
            mensajeError = mensajeError + "Debes elegir un tipo de documento";
        }
        if (numeroDocumento == null || "".equals(numeroDocumento)) {
            mensajeError = mensajeError + "Debes ingresar tu numero de documento";
        }
        if (correo == null || "".equals(correo)) {
            mensajeError = mensajeError + "Debes ingresar un correo ";
        }
        if (clave == null || "".equals(clave)) {
            mensajeError = mensajeError + "Debes ingresar una clave valida";
        }
        if (ciudad == null || "".equals(ciudad)) {
            mensajeError = mensajeError + "Debes ingresar una ciudad";
        }
        if (direccion == null || "".equals(direccion)) {
            mensajeError = mensajeError + "Debes ingresar una direccion";
        }
        if (telefono == null || "".equals(telefono)) {
            mensajeError = mensajeError + "Debes ingresar una telefono";
        }
        if (!"".equals(mensajeError)) {
            throw new Exception(mensajeError);
        }
        dao.actualizarEmpleado(c, nombres, primerApellido, segndoApellido, tipoDocumento, numeroDocumento, correo, clave, ciudad, direccion, telefono);
    }
    
    /**
     * Metodo que sirve como puente en el Servlet y DAOS para buscar un empleado
     * @param numeroDocumento Cedula del empleado
     * @return ingreso
     */
    public EntEmpleado buscar(String numeroDocumento) {
        Connection con;
        con = new Conexion().getCon();
        EntEmpleado ingreso = dao.consultarEmpleado(con, numeroDocumento);
        return ingreso;
    }
    
    /**
     * Metodo que sirve como puente entre el Servlet y DAOS para borrar un empleado de la base de datos
     * @param numeroDocumento Cedula del empleado
     * @return true | false
     */
    public boolean borrar(String numeroDocumento) {
        Connection c;
        c = new Conexion().getCon();
        return dao.borrarEmpleado(c, numeroDocumento);
    }
    
    
}

